/*******************************************************************************
* Copyright (c) 2007, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
******************************************************************************/
package org.eclipse.ui.tests.commands;
//import java.io.ByteArrayInputStream;
//import java.io.InputStream;
//import org.eclipse.core.commands.NotHandledException;
//import org.eclipse.core.resources.IFile;
//import org.eclipse.core.resources.IProject;
//import org.eclipse.core.runtime.NullProgressMonitor;
//import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.IHandlerService;
//import org.eclipse.ui.ide.IDE;
import org.eclipse.ui.tests.api.workbenchpart.MenuContributionHarness;
//import org.eclipse.ui.tests.harness.util.FileUtil;
import org.eclipse.ui.tests.harness.util.UITestCase;
/**
* @since 3.3
*
*/
public class ActionDelegateProxyTest extends UITestCase {
/**
*
*/
private static final String DELEGATE_ACTION_SET_ID = "org.eclipse.ui.tests.delegateActionSet";
private static final String INC_COMMAND = "org.eclipse.ui.tests.incMenuHarness";
private static final String VIEW_ID = "org.eclipse.ui.tests.api.MenuTestHarness";
private static final String GO_COMMAND = "org.eclipse.ui.tests.simplyGo";
private static final String STAY_COMMAND = "org.eclipse.ui.tests.simplyStay";
/**
* @param testName
*/
public ActionDelegateProxyTest(String testName) {
super(testName);
}
public void testViewDelegate() throws Exception {
IWorkbenchWindow window = openTestWindow();
IWorkbenchPage page = window.getActivePage();
assertNull(page.findView(VIEW_ID));
IViewPart view = page.showView(VIEW_ID);
assertNotNull(view);
assertTrue(view instanceof MenuContributionHarness);
MenuContributionHarness mch = (MenuContributionHarness) view;
assertEquals(0, mch.getCount());
IHandlerService service = (IHandlerService) window.getService(IHandlerService.class);
service.executeCommand(INC_COMMAND, null);
assertEquals(1, mch.getCount());
service.executeCommand(INC_COMMAND, null);
assertEquals(2, mch.getCount());
page.hideView(view);
IViewPart view2 = page.showView(VIEW_ID);
assertFalse(view==view2);
view = view2;
assertNotNull(view);
assertTrue(view instanceof MenuContributionHarness);
mch = (MenuContributionHarness) view;
assertEquals(0, mch.getCount());
service.executeCommand(INC_COMMAND, null);
assertEquals(1, mch.getCount());
service.executeCommand(INC_COMMAND, null);
assertEquals(2, mch.getCount());
}
// public void testWWActionDelegate() throws Exception {
// IWorkbenchWindow window = openTestWindow();
// window.getActivePage().showActionSet(DELEGATE_ACTION_SET_ID);
// IHandlerService service = (IHandlerService) window.getService(IHandlerService.class);
// assertFalse(SimplyGoActionDelegate.executed);
// service.executeCommand(GO_COMMAND, null);
// assertTrue(SimplyGoActionDelegate.executed);
// }
private static final String contents = "one\ntwo\nthree\n";
// public void testEditorActionDelegate() throws Exception {
// IWorkbenchWindow window = openTestWindow();
// window.getActivePage().closeAllEditors(false);
// IHandlerService service = (IHandlerService) window.getService(IHandlerService.class);
// assertFalse(EditorActionDelegate.executed);
// EditorActionDelegate.part = null;
// try {
// service.executeCommand(STAY_COMMAND, null);
// fail("the command is not yet handled");
// } catch (NotHandledException e) {
// // good
// }
// assertFalse(EditorActionDelegate.executed);
// assertNull(EditorActionDelegate.part);
//
// IProject proj = FileUtil.createProject(GO_COMMAND);
// IFile file = FileUtil.createFile("test.txt", proj);
// InputStream in = new ByteArrayInputStream(contents.getBytes());
// file.setContents(in, true, false, new NullProgressMonitor());
// IEditorPart editor1 = IDE.openEditor(window.getActivePage(), file);
// assertNotNull(editor1);
// assertEquals("org.eclipse.ui.DefaultTextEditor", editor1.getSite().getId());
//
// file = FileUtil.createFile("test2.txt", proj);
// in = new ByteArrayInputStream(contents.getBytes());
// file.setContents(in, true, false, new NullProgressMonitor());
// IEditorPart editor2 = IDE.openEditor(window.getActivePage(), file);
// assertNotNull(editor2);
// assertEquals("org.eclipse.ui.DefaultTextEditor", editor2.getSite().getId());
//
// service.executeCommand(STAY_COMMAND, null);
// assertTrue(EditorActionDelegate.executed);
// assertEquals(editor2, EditorActionDelegate.part);
//
// window.getActivePage().activate(editor1);
// processEvents();
// service.executeCommand(STAY_COMMAND, null);
// assertTrue(EditorActionDelegate.executed);
// assertEquals(editor1, EditorActionDelegate.part);
//
// }
}